package chai.ning.interfaces;

public class SuperTypeCTest {
	
	public static void main(String[] args) {
		
		// 父类类型的引用变量 指向了 子类类型的对象
		Object o = new SuperTypeC();
		System.out.println( System.identityHashCode( o ) );
		
		// 判断引用变量 o 所指向的对象是否是 Chargeable 类型 
		if( o instanceof Chargeable ) {
			Chargeable c = (Chargeable) o ;
			System.out.println( System.identityHashCode( c ) );
			c.charge();
		}
		
		// 判断引用变量 o 所指向的对象是否是 Transferable 类型 
		if( o instanceof Transferable ) {
			Transferable t = (Transferable) o ;
			System.out.println( System.identityHashCode( t ) );
			t.transfer();
		}
		
	}

}
